package hxs.events.flash.media;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.IOErrorEvent;
import flash.media.Sound;
import hxs.extras.FlashEventsBase;
import hxs.extras.FlashEventsStore;
import hxs.extras.FlashSignal;
/**
 * ...
 * @author Tony Polinelli
 */
import flash.display.DisplayObject;
import flash.events.Event;

class SoundEvents extends FlashEventsBase
{
	public function new(target:Sound) 
	{
		super(target);
	}
	
	public static function getEvents(target:Sound):SoundEvents
	{
		return cast FlashEventsStore.getEvents(target);
	}
	
	/**/
	
	public var complete(getComplete, never):FlashSignal<Event>;
	private function getComplete():FlashSignal<Event>
	{
		return cast getNativeSignal(Event.COMPLETE);
	}
	
	public var id3(getId3, never):FlashSignal<Event>;
	private function getId3():FlashSignal<Event>
	{
		return cast getNativeSignal(Event.ID3);
	}

	public var ioError(getIoError, never):FlashSignal<IOErrorEvent>;
	private function getIoError():FlashSignal<IOErrorEvent>
	{
		return cast getNativeSignal(IOErrorEvent.IO_ERROR);
	}
	
	public var open(getOpen, never):FlashSignal<Event>;
	private function getOpen():FlashSignal<Event>
	{
		return cast getNativeSignal(Event.OPEN);
	}

	public var progress(getProgress, never):FlashSignal<ProgressEvent>;
	private function getProgress():FlashSignal<ProgressEvent>
	{
		return cast getNativeSignal(ProgressEvent.PROGRESS);
	}

}